home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Adobe Air 1.5 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / styles / StyleProtoChain.as < prev    next >
Encoding:
Text File  |  2008-10-29  |  6.1 KB  |  168 lines

  1. package mx.styles
  2. {
  3.    import flash.display.DisplayObject;
  4.    import mx.core.IUITextField;
  5.    import mx.core.UIComponent;
  6.    import mx.core.mx_internal;
  7.    
  8.    use namespace mx_internal;
  9.    
  10.    public class StyleProtoChain
  11.    {
  12.       mx_internal static const VERSION:String = "3.0.0.0";
  13.       
  14.       public function StyleProtoChain()
  15.       {
  16.          super();
  17.       }
  18.       
  19.       public static function initProtoChainForUIComponentStyleName(param1:IStyleClient) : void
  20.       {
  21.          var _loc9_:CSSStyleDeclaration = null;
  22.          var _loc2_:IStyleClient = IStyleClient(param1.styleName);
  23.          var _loc3_:DisplayObject = param1 as DisplayObject;
  24.          var _loc4_:Object = _loc2_.nonInheritingStyles;
  25.          if(!_loc4_ || _loc4_ == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  26.          {
  27.             _loc4_ = StyleManager.mx_internal::stylesRoot;
  28.             if(_loc4_.effects)
  29.             {
  30.                param1.registerEffects(_loc4_.effects);
  31.             }
  32.          }
  33.          var _loc5_:Object = _loc2_.inheritingStyles;
  34.          if(!_loc5_ || _loc5_ == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  35.          {
  36.             _loc5_ = StyleManager.mx_internal::stylesRoot;
  37.          }
  38.          var _loc6_:Array = param1.getClassStyleDeclarations();
  39.          var _loc7_:int = int(_loc6_.length);
  40.          if(_loc2_ is StyleProxy)
  41.          {
  42.             if(_loc7_ == 0)
  43.             {
  44.                _loc4_ = addProperties(_loc4_,_loc2_,false);
  45.             }
  46.             _loc3_ = StyleProxy(_loc2_).source as DisplayObject;
  47.          }
  48.          var _loc8_:int = 0;
  49.          while(_loc8_ < _loc7_)
  50.          {
  51.             _loc9_ = _loc6_[_loc8_];
  52.             _loc5_ = _loc9_.mx_internal::addStyleToProtoChain(_loc5_,_loc3_);
  53.             _loc5_ = addProperties(_loc5_,_loc2_,true);
  54.             _loc4_ = _loc9_.mx_internal::addStyleToProtoChain(_loc4_,_loc3_);
  55.             _loc4_ = addProperties(_loc4_,_loc2_,false);
  56.             if(_loc9_.mx_internal::effects)
  57.             {
  58.                param1.registerEffects(_loc9_.mx_internal::effects);
  59.             }
  60.             _loc8_++;
  61.          }
  62.          param1.inheritingStyles = !!param1.styleDeclaration ? param1.styleDeclaration.mx_internal::addStyleToProtoChain(_loc5_,_loc3_) : _loc5_;
  63.          param1.nonInheritingStyles = !!param1.styleDeclaration ? param1.styleDeclaration.mx_internal::addStyleToProtoChain(_loc4_,_loc3_) : _loc4_;
  64.       }
  65.       
  66.       private static function addProperties(param1:Object, param2:IStyleClient, param3:Boolean) : Object
  67.       {
  68.          var _loc11_:CSSStyleDeclaration = null;
  69.          var _loc12_:CSSStyleDeclaration = null;
  70.          var _loc4_:Object = param2 is StyleProxy && !param3 ? StyleProxy(param2).filterMap : null;
  71.          var _loc5_:IStyleClient = param2;
  72.          while(_loc5_ is StyleProxy)
  73.          {
  74.             _loc5_ = StyleProxy(_loc5_).source;
  75.          }
  76.          var _loc6_:DisplayObject = _loc5_ as DisplayObject;
  77.          var _loc7_:Array = param2.getClassStyleDeclarations();
  78.          var _loc8_:int = int(_loc7_.length);
  79.          var _loc9_:int = 0;
  80.          while(_loc9_ < _loc8_)
  81.          {
  82.             _loc11_ = _loc7_[_loc9_];
  83.             param1 = _loc11_.mx_internal::addStyleToProtoChain(param1,_loc6_,_loc4_);
  84.             if(_loc11_.mx_internal::effects)
  85.             {
  86.                param2.registerEffects(_loc11_.mx_internal::effects);
  87.             }
  88.             _loc9_++;
  89.          }
  90.          var _loc10_:Object = param2.styleName;
  91.          if(_loc10_)
  92.          {
  93.             if(typeof _loc10_ == "object")
  94.             {
  95.                if(_loc10_ is CSSStyleDeclaration)
  96.                {
  97.                   _loc12_ = CSSStyleDeclaration(_loc10_);
  98.                }
  99.                else
  100.                {
  101.                   param1 = addProperties(param1,IStyleClient(_loc10_),param3);
  102.                }
  103.             }
  104.             else
  105.             {
  106.                _loc12_ = StyleManager.getStyleDeclaration("." + _loc10_);
  107.             }
  108.             if(_loc12_)
  109.             {
  110.                param1 = _loc12_.mx_internal::addStyleToProtoChain(param1,_loc6_,_loc4_);
  111.                if(_loc12_.mx_internal::effects)
  112.                {
  113.                   param2.registerEffects(_loc12_.mx_internal::effects);
  114.                }
  115.             }
  116.          }
  117.          if(param2.styleDeclaration)
  118.          {
  119.             param1 = param2.styleDeclaration.mx_internal::addStyleToProtoChain(param1,_loc6_,_loc4_);
  120.          }
  121.          return param1;
  122.       }
  123.       
  124.       public static function initTextField(param1:IUITextField) : void
  125.       {
  126.          var _loc3_:CSSStyleDeclaration = null;
  127.          var _loc2_:Object = param1.styleName;
  128.          if(_loc2_)
  129.          {
  130.             if(typeof _loc2_ == "object")
  131.             {
  132.                if(!(_loc2_ is CSSStyleDeclaration))
  133.                {
  134.                   if(_loc2_ is StyleProxy)
  135.                   {
  136.                      param1.inheritingStyles = IStyleClient(_loc2_).inheritingStyles;
  137.                      param1.nonInheritingStyles = addProperties(StyleManager.mx_internal::stylesRoot,IStyleClient(_loc2_),false);
  138.                      return;
  139.                   }
  140.                   param1.inheritingStyles = IStyleClient(_loc2_).inheritingStyles;
  141.                   param1.nonInheritingStyles = IStyleClient(_loc2_).nonInheritingStyles;
  142.                   return;
  143.                }
  144.                _loc3_ = CSSStyleDeclaration(_loc2_);
  145.             }
  146.             else
  147.             {
  148.                _loc3_ = StyleManager.getStyleDeclaration("." + _loc2_);
  149.             }
  150.          }
  151.          var _loc4_:Object = IStyleClient(param1.parent).inheritingStyles;
  152.          var _loc5_:Object = StyleManager.mx_internal::stylesRoot;
  153.          if(!_loc4_)
  154.          {
  155.             _loc4_ = StyleManager.mx_internal::stylesRoot;
  156.          }
  157.          if(_loc3_)
  158.          {
  159.             _loc4_ = _loc3_.mx_internal::addStyleToProtoChain(_loc4_,DisplayObject(param1));
  160.             _loc5_ = _loc3_.mx_internal::addStyleToProtoChain(_loc5_,DisplayObject(param1));
  161.          }
  162.          param1.inheritingStyles = _loc4_;
  163.          param1.nonInheritingStyles = _loc5_;
  164.       }
  165.    }
  166. }
  167.  
  168.